Automatically guided tools

ABSTRACT

A position correcting system, method and tool for guiding a tool during its use based on its location relative to the material being worked on. Provided is a system and tool which uses its auto correcting technology to precisely rout or cut material. The invention provides a camera which is used to track the visual features of the surface of the material being cut to build a map and locate an image on that map used to reference the location of the tool for auto-correction of the cutting path.

REFERENCE TO PRIORITY APPLICATIONS

The present application claims the benefit of priority under 35 U.S.C. §120 as a continuation of U.S. patent application Ser. No. 14/678,752,filed Apr. 3, 2015, which claims the benefit of priority under 35 U.S.C.§ 120 as a continuation of U.S. patent application Ser. No. 13/477,029,filed May 21, 2012, which claims the benefit of priority under 35 U.S.C.§ 119 to U.S. Provisional Patent Application No. 61/488,118 filed on May19, 2011, entitled “Automatically Guided Tools” and U.S. ProvisionalPatent Application No. 61/639,062 filed on Apr. 26, 2012, entitled“Automatically Guided Tools”, each of which are hereby incorporated byreference herein in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to tools and methods for workingon a surface such as woodworking or printing. More particularly, thepresent invention relates to ways to determine the exact location of atool in reference to the surface of a material and using the location toauto-correct the tool along a predetermined path such as a cutting path.

2. Description of the Related Art

Current methods and tools that exist to help guide a tool, such as ahand tool, accurately today are premised on minimizing the movement ofthe tool in one or more directions. Tools that are more difficult tomove accurately are guided through the use of mechanical guides such asrailings or fences which can be put in place to assist the user inguiding the tool. These fences or guides limit movement since the toolis restricted by the guide. However, existing guide approaches areunsatisfactory, because they take a significant amount of time to set upand because guides do not support complex paths.

If the tool can be accurately positioned freehand, measuring devices maybe used to draw visual guides onto the material being used which canthen be manually followed. However, such visual guides are stilldifficult for the user to follow accurately leading to extensive usererror in the cutting plan.

Computer numerical control (“CNC”) machines or tools alleviate many ofthese problems by guiding a tool using a computer which has knowledge ofthe tool's position relative to its set up within the CNC machine andthe plan to be followed. CNC machines control movement of the tool tofollow the intended path. However, CNC machines are typically expensive,large, and difficult to set up, and most are limited to working withmaterials that fit within the CNC machine's physical housing.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a system and method forguiding a tool with the precision and flexibility of CNC tools butwithout the need for CNC's large and expensive hardware. The presentinvention introduces the idea of a rig or frame with stage which can bepositioned on the surface of a piece of material. The present inventioncan then automatically determine its position on that material andthrough movement of the stage can accurately move the stage to anycoordinate on the material. In some embodiments of the presentinvention, a digital camera attached to the rig or frame is used todetect the position of the rig and stage. The digital camera can be usedto build a map of a piece of material and track the location of the rigand stage on the map. The present invention may include a tool mountedon the stage that can performs work on the surface of the material suchas cutting, drilling, sanding, printing or other tasks.

The present invention also provides for controlling the location of thestage, and any attached tool, relative to the material and a design orplan to adjust the stage and tool based on the sensed position. Thus, auser can free hand a design and the present invention will automaticallyadjust the stage and associated tool to precisely match the design planand eliminate or minimize human error. The present invention isparticularly useful for controlling a router which can be used to cutwood or other materials.

The present invention may make use of computer vision (“CV”) technologywhich allows input from a digital camera to be processed and understoodby a computer. The CV technology provides benefits to the presentinvention in that it provides the ability to determine the location ofthe rig relative to the material in a fast and accurate manner whilebeing economical from a hardware standpoint. The present invention maymake use of one or more CV or sensor based techniques.

The present invention provides a tool for automatically adjusting thelocation of a working member of the tool comprising: a stage adapted toreceive the working member; at least one motor adapted to move thestage; at least one motor controller that controls the at least onemotor; a processor in combination with one or more software applicationsfor processing data and providing information to the at least one motorcontroller; at least one camera adapted for use with the processor forcapturing images of a surface, wherein the captured images are processedto build a map of the surface; wherein a subsequent captured image ofthe surface is processed to determine the location and orientation ofthe tool relative to the map; and wherein the processor providesinformation to control the at least one motor to move the stage andworking member to a desired location. The location of the working memberor the location of the tool are calculated based upon the location atleast one of the at least one cameras. The tool may be one of: a router;a drill; a nail gun; a jigsaw, a scroll saw; or a printer. The workingmember may be one of: a cutting bit; a saw blade, a drill bit, a hammer,or a printer head. The tool may also provide a display screen indicatingthe location of the working member relative to at least a portion of themap. A design can be loaded into a memory adapted for use with theprocessor and displayed on the display relative to the map and locationof the working member. The design can be processed to determine anintended path for the working member based on the design and the map.The motor controller can, based on information received from theprocessor, moves the working member to a point on the intended path.

The present invention also provide a tool for automatically adjustingthe location of a working member of the tool comprising: a stage adaptedto receive the working member; at least one motor adapted to move thestage; at least one motor controller that controls the at least onemotor; a processor in combination with one or more software applicationsfor processing data and providing information to the at least one motorcontroller; at least one sensor adapted for use with the processor forcapturing information about a working piece, wherein the capturedinformation is processed to build a map of the working piece; whereinfurther sensor information is processed to determine the location andorientation of the tool relative to the map; and wherein the processorprovides control information to control the at least one motor to movethe stage and working member to a desired location. The location of theworking member may be determined based upon the location at least one ofthe at least one sensors. The location of the tool may be determinedbased upon the location at least one of the at least one sensors. One ofthe sensors may be a camera.

Further, the present invention provides a rig for automaticallyadjusting the location of a working member comprising: a stage adaptedto receive the working member of a tool; at least one motor adapted tomove the stage; at least one motor controller that controls the at leastone motor; a processor in combination with one or more softwareapplications for processing data and providing information to the atleast one motor controller; at least one sensor adapted for use with theprocessor for capturing information about a working piece, wherein thecaptured information is processed to build a map of the working piece;wherein further sensor information is processed to determine thelocation and orientation of the working member relative to the map; andwherein the processor provides control information to control the atleast one motor to move the stage and working member to a desiredlocation. The location of the working member may be determined basedupon the location at least one of the at least one sensors. The locationof the tool may be determined based upon the location at least one ofthe at least one sensors. Further, the location of the rig may be basedon the location of at least one of the at least one sensors. One of thesensors may be a camera. The tool which mates with the stage may be oneof: a router; a drill; a nail gun; a jigsaw, a scroll saw; or a printer.The working member in the rig may be one of: a cutting bit; a saw blade,a drill bit, a hammer, or a printer head. The rig may further comprise adisplay screen indicating the location of the working member relative toat least a portion of the map. A design can be loaded into a memoryadapted for use with the processor and displayed on the display relativeto the map and location of the working member. The design can be loadedinto a memory adapted for use with the processor, wherein an intendedpath for the working member is determined based on the design and themap. The motor control information can move the working member to apoint on the intended path.

The rig of the present invention can also perform the method of:selecting and registering a design to be rendered; preparing andaligning a position of the tool on the rig; advancing the tool in afirst direction and within a selected range substantially adjacent to anoutline of the design; and automatically realigning the tool to aboundary edge of the design in a second direction as the tool isadvanced in the first direction.

Further, the present invention provides a method of locating a tool on amaterial, the tool being attached to a stage on a rig, comprising thesteps of: selecting and registering a design to be rendered; preparingand aligning a position of the tool; advancing the tool in a firstdirection and within a selected range substantially adjacent to anoutline of the design; and automatically realigning the tool to aboundary edge of the design in a second direction as the tool isadvanced in the first direction. Further steps include the aligning of aposition of the tool is performed by comparing the position of at leastone marker disposed on the material to the registered position of thedesign. Additionally, the selected range substantially adjacent to anoutline of the design can be a target range window displaying anillustration of: the tool, an intended cut path and a desired toolmovement path that may be different from the intended cut path.

Further, the present invention may automatically realign the tool to aboundary edge of the design in a second direction by a repositioningmechanism, as the tool is advanced in the first direction. The methodsof the present invention may automatically realign in response toreceiving image data from a camera or in response to the processing of areceived capture of an image of a marker on the material.

The present invention also provides a method of cutting a design in amaterial based on a relative constant speed of movement of a tool, thetool being attached to a stage on a rig, comprising: displaying a targetrange window rendering an illustration of a point of reference of thetool, an intended cut path and a desired tool movement path that may bedifferent from the intended cut path; aligning and advancing the tool ina first direction at the relative constant speed of movement along thedesired tool movement path to cut away the material at the intended cutpath; and automatically realigning the tool in a second direction to aboundary edge location of the intended cut path as the tool is advancedat the relative constant speed of movement in the first direction alongthe design. The target range window may include a target range area thatsurrounds the point of reference of the tool, a portion of the intendedcut path and a portion of the desired tool movement path. The desiredtool movement path is in at least one of a clockwise or counterclockwisecontinuous movement around a perimeter of the design. The design may bea virtual overlay in the target range window. The system mayautomatically realign a position of the tool based on a comparison of aprevious position on the design and a preferred next position on thedesign. Further, an automatic realigning of the tool to a boundary edgeof the design in a second direction may be performed automatically by arepositioning mechanism, as the tool is advanced in the first direction.Further, the automatic repositioning of the tool accounts for the widthof a cutting member of the tool relative to the intended cut path.Automatic realigning of the tool may be in response to receiving livefeed of image data from a camera.

These and other objects, features, and/or advantages may accrue fromvarious aspects of embodiments of the present invention, as described inmore detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

Various exemplary embodiments of this invention will be described indetail, wherein like reference numerals refer to identical or similarcomponents or steps, with reference to the following figures, wherein:

FIG. 1 depicts a front view of an exemplary embodiment of the presentinvention with a router attached;

FIG. 2 provides a front view of an exemplary embodiment of the presentinvention without a tool attached;

FIG. 3 provides a side view of an exemplary embodiment of the presentinvention with a router attached;

FIG. 4 provides a side view of an exemplary embodiment of the presentinvention without a tool attached;

FIG. 5 provides a rear view of an exemplary embodiment of the presentinvention with a router attached;

FIG. 6 provides a rear view of an exemplary embodiment of the presentinvention without a tool attached;

FIG. 7 provides a to view of an exemplary embodiment of the presentinvention with a router attached;

FIG. 8 provides a perspective view of the bottom of an exemplaryembodiment of the present invention without a tool attached;

FIG. 9 provides a bottom view of the internal stage and pivot componentsan exemplary embodiment of the present invention;

FIG. 10 provides a flow chart of the steps performed by the presentinvention during operation;

FIG. 11 provides a flow chart of the steps performed by the presentinvention during the constant speed process;

FIG. 12 provides a system element diagram of the present invention;

FIG. 13 provides a perspective view of a second exemplary embodiment ofthe present invention;

FIG. 14 provides a perspective view of a third exemplary embodiment ofthe present invention; and

FIG. 15 provides a representation of the graphical user interfaceprovided on the display of the system.

FIG. 16(a) Overview: A position-correcting tool. The device consists ofa frame and a tool (in this case a router) mounted within that frame.The frame is positioned manually by the user. The device can adjust theposition of the tool within the frame to correct for error in the user'scoarse positioning.

FIG. 16(b) To follow a complex path, the user need only move the framein a rough approximation of the path. In this example, the dotted blueline shows the path that the tool would take if its position were notadjusted; the black line is its actual path.

FIG. 16(c) An example of a shape cut out of wood using such a tool.

FIG. 17 Map: A scanned map with a plan registered to it. The red dottedline indicates a path that a user could conceivably follow to cut outthe shape.

FIG. 18 Markers: A sequence of markers, with values 1000 to 1006, suchas would be printed on a strip of tape.

FIG. 19(a) Positioning linkage: The mechanics of our linkage can beconceptualized as two shafts (unfilled circles) rotating arms that areconnected with pivots (filled circles) to a rigid stage (shaded region)that holds the spindle (cross). To properly constrain the degrees offreedom of the stage, one arm is directly connected to the stage whilethe other is connected via an additional hinge.

FIG. 19(b) The design is achieved in practice using eccentrics, whichare circular disks rotating about off-center shafts to produce lineardisplacement in fitted collars.

FIG. 19(c) A photo of the actual linkage.

FIG. 20 Freeform motion paths: Each box illustrates a case in which adifferent path (described below) is used, due to the higher-preferencepaths being infeasible. In each box, the cross is the current positionof the tool, the circle is the range of the positioning system, thegreen dot is the target position, and the green path is the selectedpath.

FIG. 21 User interface: This display shows the shapes of the plan (bluepolygons); the path that the tool is actually following, which is thoseshapes offset by the tool's radius (dotted line); the tool's currentposition (cross); the area cut by the tool (shaded area); and the rangeof the tool's position correction (black circle). As long as the userkeeps the tool path within the correction range, the tool should be ableto follow the plan.

FIG. 22 Results: Several shapes cut out from wood, sheet metal,paperboard, and polycarbonate plastic.

FIG. 23 Range: A full-size vinyl cutout of a human silhouette (5′6″tall), with original.

FIG. 24 Fine details: With a vinyl cutter, the resolution of features isnot limited by the width of the bit. Here, we show a 6″-wide stickerwith fine details.

FIG. 25 Accuracy: A scan of a plotted pattern (6″ wide) shown with thedesign that was used to create it (red). The inset shows an expansion ofthe area of worst error, with the addition of the line fit to the scanfor analysis (green). Note that even here the error is only on the orderof the width of the pen.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Particular embodiments of the present invention will now be described ingreater detail with reference to the figures. Like reference numeralsapply to similar parts throughout the several views.

This invention overcomes the conventional problems described above byproviding a handheld system which can identify the location of a tool,or the rig which contains a tool, relative to the material being workedon and can adjust the tool to the desired location. Therefore, thesystem can provide a handheld device with a working instrument capableof being operated by hand which can make precision adjustments of theworking instrument location based on spatial location to provide anaccurate path which the working instrument travels.

A diagram of the main system components is best depicted and describedin conjunction with FIG. 12. As seen in FIG. 12, a system 680 isprovided with a smart device 681. The smart device 681 provides acentral processing unit (“CPU”) or processor 683, software code 685which performs one or more processes, memory 687, and a display 689.

The smart device 681 may be one a self-contained unit or may have one ormore components separated. For example, the display 689 may be tetheredto the smart device 681 or integrated into the housing of the smartdevice 681. Likewise, the smart device 681 may be integrated as part ofthe system 680 so that the system is a self contained portable unit. Thesystem 680 also includes a camera 682 which is used in combination withthe smart device 681 to build a map 684 of the material to be worked on.The map 684 may be built in various ways including using computer vision(“CV”) and sensors. One CV technique that could be employed is using orbuilding a photo mosaic. A photo mosaic process including takingmultiple photographs of different parts of the same object and stitchingthem together to make one overall image covering the entire object.

Another technique which may be employed is simultaneous localization andmapping (“SLAM”). SLAM makes use of a sensor that in combination with aprocessor 683 and related software 685 is able to build a map 684 of thematerial being worked on while simultaneously determining the locationof the tool 699 relative to the map 684.

Specifically, after the map is built the camera 682 continues to captureimages of the material being worked on which are fed to and processed bythe smart device 681 to constantly determine the location of the tool699 or rig. The captured images are analyzed against the map 684 todetermine the geo location of the camera 681 relative to the material.Once the location of the camera 682 is determined, the location of therig is then a known offset from the camera 682 position as the camera682 is rigidly attached to the rig. The location of the tool 699relative to the rig is then computed from the current orientations ofthe motor shafts. The orientations of the motor shafts are known by“homing” them once and then tracking all steps taken since the homingprocess. Alternatively, encoders could be used instead of homing as theencoders would be able to tell the orientations of the shafts directly.Through the offsets and calculations, the system can identify thelocation of the tool 699 or rig relative to the material being workedon. The captured images which are analyzed against the map 684 mayinclude characteristics of the material such as wood grains anddeformations or may include markers placed on the material. Differentaspects of the mapping and location technology will be described in moredetail below.

The user may then input or load a design 686 or template into the smartdevice 681, adjust the size of the design 686 relative to the map 684 ofthe material to provide the user with a desired working path on thematerial being worked on.

In operation, as the system or rig 680 is moved by the user along thematerial being worked the smart device 681 processes the captured imagesfrom the camera 682, determines the location of the rig 680, andprovides a desired path to the user on display 689. Once the user hasplaced the rig 680 close to the desired path the rig or system 680automatically adjusts the position of the tool 699 to achieve theprecise working path stemming from the loaded design 686. The term “rig”and “system” are used interchangeably in the description of the presentinvention. However, the rig primarily refers to the physical deviceitself including all attachments. The system refers to the physicaldevice, all attachments, and all related technology and software codeembedded or included in some of the physical elements.

The system 680 adjusts the precise location of the tool 699 by adjustingthe geo location of the stage 690 or a moveable platform that the tool699 is attached to. The stage 690 is connected to an eccentric coupledto a motor shaft. As the motor shaft moves in a circular path theeccentric moves the stage 690 in complex arcs and paths. A pivot 694 isconnected to the stage and is also connected to an eccentric coupled toa second or pivot motor shaft. The pivot 694 is able to pull or push thestage 690 to achieve controlled movement of the stage within a 360degree range. The ultimate effect is that the eccentrics can be rotatedto position the stage in almost any XY position in the range.

The system 680 may use a reference lookup table which provides motorcoordinates related to stage positions, or uses calculations to adjustthe motors and move the stage 690 and the cutting bit of the tool 699connected to the stage 690 to the desired location. Further, the tool699 through movement of the stage 690 and pivot 694 is capable ofmovement in 360 degrees of movement in a two dimensional plane.Essentially, the cutting instrument of the tool can be moved anywherewithin the 360 degree window of the target range 408 (see FIG. 15).

In the exemplary embodiment, the stage 690 and pivot 694 are moved byelectric motors. The stage motor 210 is controlled by a stage motorcontroller 691 and the pivot motor 220 is controlled by a pivot motorcontroller 695. The stage motor controller 691 and pivot motorcontroller 695 receive information on the desired location orcoordinates from the smart device 681. Based on the received informationthe stage motor controller 691 and pivot motor controller 695 activateand control their respective motors 210, 220 to place the stage 690 andthe pivot 694 in the proper position which places the tool in thedesired geo location.

The smart device 681 may also communicate with, receive informationfrom, and control the tool 699. Such control could include sendinginstructions to power on or off, increase or reduce speed, when toengage the material being worked such as adjusting the depth of the tool699 when the user is close enough to or near the desired path on thematerial.

The form and structure of an exemplary embodiment of the presentinvention for use with a cutting tool is provided and depicted in FIGS.1-9. The exemplary embodiment of the present invention depicted in FIGS.1-9 provides a system or rig 100 which is configured for use with arouter 500. The system 100 includes two support legs 104 which areattached to a base housing 130 on the lower end and terminate into adevice mount 122 at the upper end. The device mount 122 includes leftand right display clips 124 to clamp or lock the monitor or smart device570 into the device mount 122. The device 570 includes a display screen572 for the user to view the cutting path for that particular use. Thebase 130 also has left and right handles or grips 106 attached throughhandle support arms 108.

The lower end of the base 130 has a bottom plate 139 which encloses thestage 150 and a lower stage skid pad 151. The base 130 and bottom plate139 are fastened to one another such as by machined screws. As seen inFIG. 8, the bottom plate 139 has a bottom skid pad 141 attached to thebottom. The bottom skid pad 141 is used to assist movement of the rig100 along the surface of the material being worked on. The bottom skidpad 141 may be made of a high density polyethylene, Teflon, or othersuitable material which is both durable and suited for sliding along thematerial.

The router 500 is added to the rig 100 by attaching the router baseplate 510 to the stage 150. As seen in FIG. 9, the stage 150 has severaltool attachment points 164 for attaching the router base 510 to thestage 150. The router base 510 has several router base support legs 508which forms a cage around the router bit 512. The router 500 also has apower cord 506 and an on-off switch 504. As mentioned previously, therig 100 may be implemented as a self contained portable unit includingan on-board source of power, such as a battery source.

The smart unit or monitor 570 has an input cable 574 with a cableterminal or receptacle 576. If the device is a smart unit the CPU,software, and memory will be on the device itself. If the device 570 issimply a monitor then the cable 574 and receptacle 576 will connect tothe CPU unit.

As best seen in FIGS. 2-7, the system 100 contains a stage motor 210 anda pivot motor 220. The stage motor 210 is used to control movement ofthe stage 150. The pivot motor 220 is used to control movement of thepivot arm 156 which pulls or pushes the stage 150 to convert therotational motion of the motors 210, 220 into a relatively linearmotion. The stage motor 210 and pivot motor 220 each have their ownmotor cap 212, 222 respectively.

The motors 210, 220 are controlled by the stage motor driver 253 and thepivot motor driver 254 which are connected to the printed circuit board250 and the microcontroller board 252. The microcontroller 252 processeslow level instructions from the smart device or CPU unit (i.e. alaptop). The instructions would be instructions to move the motors 210,220 to set positions (i.e. positions 150, 125) into the correct stepcommands to drive the motors to those positions. The motors'orientations are tracked by homing them to a zero position once and thentracking all subsequent steps taken. Alternatively, the system could userotary encoders to keep track of the state of the motor shafts'orientations. The motors 210, 220 and the motor drivers 253, 254 arepowered by connecting the power plug receptacle 255 into a power source.

As seen in FIGS. 3-4, the back of the rig 100 includes a camera support190. The camera support 190 may be one or more support members which areconnected to the upper stage housing 130 and terminate at the top of therig 100 where a camera 300 is mounted. The camera 300 and a lens 304 areplaced in a relatively downward position to capture images of thematerial being worked and the surrounding areas thereof.

In this exemplary embodiment, eccentrics were used to convert therotational motion of the motors into linear motion. Eccentrics arecircular disks rotating around an off-center shaft. As the shafts arerotated, they produce linear motion in the collars wrapped around theeccentric disks. Eccentrics are able to maintain the same low backlashaccuracy of a precision linear stage while being less expensive. Alinear displacement range of ½″ is well within the capabilities of aneccentric. The present exemplary embodiment consists of two eccentricsmounted to the frame and connected to a stage that can slide on itsbase. The eccentrics are rotated by stepper motors, and by rotating themthe stage can be moved within the frame. The size and shape of thevarious eccentrics can be varied to provide larger or smaller relativemovement of the tool 699 relative to the workspace.

To properly constrain the stage, one eccentric is connected directly tothe stage by a ball bearing coupling, while the other is connected by acoupling and a hinge. This linkage design results in a nonlinearrelationship between eccentric orientation and stage position. Near thecenter of the range moderate rotation of an eccentric produces moderatemotion of the stage. In contrast, near the edge of the range much largerrotations are necessary to move the stage a fixed amount. In the presentinvention, stage displacement is limited to approximately 95% of themaximum range to avoid positions with extreme nonlinearity. This linkagedesign also permits back driving, in that forces acting on the tool cancause the cams to rotate away from their target positions. However, thepresent invention makes use of adequately powered motors which havesufficient power to preclude back driving even in the presence ofsignificant forces.

As seen in FIG. 9, the upper stage housing 130 is a one piece unit withspacers 131, 133, 135 machined or formed into the upper stage housing130. The spacers 131, 133, 135 provide the required space for the stage150 and pivot arm 156 to move. The front spacers 131, side spacers 133,and rear spacers 135 need not be formed as one unit. Instead, the frontspacers 131, side spacers 133, and rear spacers 135 could be separatepieces attached to the upper stage housing 130. The upper stage housing130 also accommodates several upper stage skid pads 137. The upper stageskid pads 137 allow the stage stabilizing arms 152 to move along thepads 137 with minimal friction.

The stage 150 is ideally made of a light but durable and strong materialsuch as aluminum or some other alloy. The stage 150 is most likelymachined to include one or more stabilizing arms 152, the stageeccentric arm member 154, tool attachment points 164, and an opening 160where the tool extends through the stage 150. In addition, a pivot arm156 is most likely machined from the same alloy or material as the stage150.

In operation the stage motor 210 moves in response to rotation of thestage motor shaft 184. There is a stage eccentric cam member 174attached to the stage motor shaft 184. When the stage motor shaft 184rotates the stage eccentric cam 174 rotates and the cam design causesthe stage arm member 154 connected to and surrounding the cam 174 tomove the stage 150. A bearing ring may be used between the cam 174 andthe stage arm member 154.

Additionally, when the pivot motor 220 moves the pivot motor shaft 186rotates. There is a pivot eccentric cam member 176 attached to the pivotmotor shaft 186. When the pivot motor shaft 186 rotates the pivoteccentric cam 176 rotates and the cam design causes the pivot arm member154 connected to and surrounding the cam 176 to move the pivot arm 156back and forth which causes the stage 150 to move relative to the pivotarm 156. A bearing ring may be used between the cam 176 and the pivotarm 156.

As the stage 150 and pivot arm 154 move, the stage stabilizing arms 152move along the upper stage skid pads and the lower stage skid pad 151(see FIG. 1) to stabilize the stage 150 during movement. Further, thestage eccentric 174 and pivot eccentric 176 include a boss. The bossgives the eccentric 174, 176 some extra material to house the set screwwhich clamps on the stage motor shaft 184 or pivot motor shaft 186, thussecurely attaching it to the respective eccentric 174, 176. The pivoteccentric boss 187 is seen in FIG. 9. The stage eccentric boss is notshown in the figures as it is flipped relative to the pivot boss 187because the stage 150 and the pivot arm 156 are operating on differentplanes.

By way of example, FIG. 15 depicts the monitor or display 572 as theuser pulls or pushes the rig 100 using the handles 106. The router bit512 (as shown by the crosshairs 410) of the router 500 cuts the material400 being worked on. The user sees the intended path 404 (as shown insolid lines) of the design on the display 572 of the monitor or smartdevice 570. The display 572 shows the desired path 406 as well as thetarget range 408. The target range 408 is related to the range ofmovement of the stage 150 and correspondingly the attached tool. Thus,if the range of movement of the router is generally 0.5 inches in anydirection from its center point then the target range 408 would best bedefined as a circle with a one inch diameter since the router bit canonly move 0.5 inches from the center point. Thus, the user would need tomove the router bit 410 within 0.5 inches of the intended path 404. Oncethe intended path 404 is within the target range 408, the CPU wouldautomatically identify a target point on the intended path 404. The CPUwould send instructions to the motor controllers to move the stage 150to the appropriate coordinates which correspond with the bit 410reaching the target point and cutting along the intended path 404. It'simportant to note that the system can account for the width of thecutting bit 410. If the system were to place the router bit 410 directlyon the intended path 404 the width of the router blade would cause therouter to remove material 402 beyond the intended path 404. The systemaccounts for the width of the cutting bit 410 by setting the desiredpath 406 some distance from the intended path 404 so that the bit 410only takes out material up to, but not beyond, the intended path 404.Since cutting elements or bits have different widths the system can beadjusted to remove or vary the bit width adjustment or the gap betweenthe intended path 404 and the desired path 406.

As the system cuts or reaches one target point, the system wouldidentify a next target point and continue in this process cutting alongthe intended path 404 in a clockwise direction. The user would continueto pull or push the rig 100 via the handles 106 keeping the intendedpath 404 (a line or area) within the target range 408 as seen on monitor572. A more detailed flow and process is described in conjunction withFIGS. 10 and 11.

FIG. 10 provides a flow chart showing the steps or method 600 forcutting a working surface using the router based embodiment of thepresent invention. First in step 602 the user would find or create adesign they want to cut out of a material. The user would then need tomap the sheet of material. If the material has enough markings the usercould use the material itself. However, in step 604, if the material hasa flat surface or limited markings the user can place markers on thematerial. Such markers might include printer marker stickers and/or anyother type of suitable indicia capable of being readily identified.

In step 606, the user uses the camera technology to scan the materialand the various markers to create the map. The CPU processes the imagescaptured by the camera and generates the map. The size and shape of themap can be appropriately manipulated to a preferred configuration. Thedesign is then registered to the map to create a cutting plan (step608).

In step 610, the user prepares the cutting tool by loading, adjusting,or securing the bit, mounting it to the rig and turning the router on.In the alternative, and as mentioned previously, it is to be understoodthat the turning on of the router can be a software initiated process inresponse a variety of parameters, as opposed to a mechanical switch,such as motion sensing of a movement of the rig 100 in a particulardirection by the user, or the like.

In step 612, the user may set a few elements, such as width of the bitof the cutting tool, the range of the tool's desired range correction,the size of the cross-hair, the speed of the cutting tool, and the like.Thereafter, instructions may be provided to the software to begin.

In step 614, the rig is placed adjacent to the desired path so that thesystem can automatically adjust the position of the tool into a startingadjustment range position along the desired path. The user then followsthe “constant speed strategy” as will be described in more detail withregards to FIG. 11. Once the tool has advanced fully around the plan(step 616) the user can remove the device and work product from thematerial.

FIG. 11 provides a flow chart of method 650 for the constant speedstrategy. The process in FIG. 11 assumes the user already has the routerattached to the jig and has mapped their material and loaded up theirdesign. The user then starts (step 651) the process to cut the material.

In step 653, the user must move the tool to a spot within the range ofplan or path on the material. Once the user has moved the rig with therouter tool to a spot within range of the intended path, the system instep 655 determines based on its location if there is a point on theplan within the adjustment range of the rig. If not, the system in step657 may send a notification and waits until the user moves the devicewithin the adjustment range.

In step 659, if there is a point within the adjustment range the systemsets the point on the plan nearest to the tool as the target point. Thesystem in step 661 then moves the tool to the target point and cuts thematerial.

The system then attempts to create a second target by determining instep 663 if a new target is within the adjustment range. If there is asecond target, the system in step 665 sets the second target point asthe new target and the device continues to move in a clockwise directioncutting from the old target point to the new target point. As the toolor router is cutting from the old target point to the new target pointit is also attempting to identify the next target point within theadjustment range (step 663). The determination of an optimum secondtarget may be continuous, and based on the image, or various images,detected from the camera and processed by the system.

If not, the system (in step 667) clears the target point and starts backat step 655 to determine if there is a point on the plan within theadjustment range. This process continues until the tool has gone throughthe entire plan in a particular direction, such as a clockwisedirection.

As previously discussed above, FIG. 12 provides a system diagram of themain components of the present invention. The system 680 makes use of asmart device or system 681 which includes a CPU 683, software code 685which performs one or more processes, memory 687, and a display 689. Thesmart device 681 may be one contained unit which mounts onto the displaymount 122, 124 or may have one or more components separated butconnected. For example, the system may be connected to a laptop orremote CPU 683 which contains the software code 685 and memory 687 yetis tethered to a monitor 689. The monitor 689 may mount to the displaymount 122, 124.

The camera 682 is used to build a map 684 of the material to be workedon as well as determine the location of the rig 100 on the material. Asdiscussed, the system may use CV technology and other sensors to build aphoto mosaic map 684 of the material or could use the SLAM process. SLAMmakes use of a sensor that in combination with a processor 683 andrelated software 685 is able to build a map 684 of the material beingworked on while simultaneously determining the location of the tool 699relative to the map 684.

Through the present invention, as previously described, the system 680is able to locate a tool 699 or the working bit of a tool 699 on thesurface of a material being worked. The system 680 is able to locate thetool 699 on the material using a camera 682 positioned some distanceaway from the material based on looking and or mapping at the material.In one implementation, the camera 682 is first used to build a map 684of the material and is then used to locate itself (or the tool) on themap 684.

The map 684 can be built by having the user sweep the camera 300 in anarbitrary path over the surface of the material until the entire area ofinterest has been covered. The camera 682 can be removed from the rig100 for this step. The images from this sweep are then stitched togetherby the CPU 683 using the image mosaicing software code 685 to form acohesive map 684 of the area of interest of the surface of the material.Then, the user can return the camera 300 to the rig 100. Once the map684 is formed and saved in memory 687 whenever the camera 682 takes animage of the material it has mapped, it can be matched against the map684 held in memory 684 and its position and orientation determined.

This process may have an extra step in allowing the user to create andload a design 686. After the map 684 has been assembled on the smartdevice 681 (such as a computer), the user may create a design 686 on thecomputer by plotting it directly on the generated map 684. For example,the user may mark positions on a piece of wood where a drill hole isdesired. All the techniques and features of the software code 685(include computer aided design and manufacturing) can be employed tocreate a design with accurate measurements. Then, when the user returnsto the material, the position of the camera 682 on the map 684 can bedisplayed on a screen or display 689 to the user, with the design plan686 overlaid on the map 684. Essentially, the system 680 is able toidentify the geo location of the tool relative to the map. So, in theexample of drill holes, the camera 682 could be attached to a drill andused to determine the position of the drill exactly relative to thetarget drill locations specified in the design 686, enabling the user toline up the drill precisely.

A significant advantage of such a system is that it eliminatesmeasurement mistakes, as all measurements are performed on the computer681. Measurement is traditionally one of the most common sources oferror and such error would be negated by the present mapping andlocation aspects of the present invention.

Although described herein in combination with a router and separatelywith a drill bit, the camera 682 could be attached to any tool 699 toprovide positioning for that tool 699. The camera 682 could also becoupled with a display 689 and CPU 683 and become part of a computer orsmart device 681 that can be attached to any tool 699. Further, asoftware application or code 685 could be installed on a mobileSmartphone (such as an iPhone) utilizing the camera, CPU, memory, anddisplay already part of the Smartphone.

The system may perform the mapping and positioning steps simultaneously(i.e. “SLAM”, Simultaneous Localization and Mapping) and the system 680may use a video or still camera 682. The camera 682 may be directeddownward at the surface of the material, it could be positioned at anyangle, and it could sit at any vantage point on the tool 699 or rig 100(FIG. 1).

During the phase when the camera 682 is being used to locate itself onthe material, having low lag between moving the camera 682 and detectingthat movement can be important. One way to decrease lag is to use ahigh-frame rate camera 682. However, these can be expensive. Analternative is to use a relatively low-frame rate camera 682 coupledwith one or more optical sensors such as are present in optical mice.The optical sensors provide low-latency dead reckoning information.These sensors could be used in conjunction with the camera 682, forexample in a configuration where the camera 682 provides accurate globalposition information a few times a second and appreciable lag, and theoptical sensors are used to provide dead-reckoning information with lowlag that fills in the time since the last image was taken. The systemcould also make use of multiple cameras to increase the accuracy orrange of coverage when scanning, or to provide depth information.

There are also numerous options for creating, capturing, or loading thedesign 686. Designs could be downloaded or otherwise obtained fromothers including by purchasing designs online and uploading to the smartdevice or computer 681. Rather than creating the design 686 on aseparate computer and then uploading to the device 681 the system 680could be used to capture a map not only of the surface but of the design686 on that surface. This could be useful for setting up the system 680to follow a specific line or to show the user an image of the surface ofthe material underneath a large tool which obstructs sight, or to showthe surface with a drawn plan in a pristine state before it is coveredwith debris or the surface on which the plan is drawn is cut away.Alternatively, the design 686 could be designed, altered, or manipulatedfrom its original form on the device 681 through a menu driven interfaceallowing the user to input distances, angles, and shapes or to free handa drawing on a touch sensitive pad or display.

In an exemplary embodiment, the software 685 is able to build the mapand track the camera's position using visible features of the materialsuch as grains, imperfections, and marks. However, some materials, suchas solid-colored plastic, may be too undifferentiated for this to work.In these instances, the user may alter the material surface in some wayto add features that can be tracked. There are many possible ways thiscould be done: the user could apply ink to the material that istypically invisible, but which can be seen either in a non-visiblespectrum or in the visible spectrum when UV light is applied (orsimilar), allowing the camera to track the pattern of the invisible inkwhile not showing any visible markings once the work is done.Alternatively, the user could apply stickers with markers which canlater be removed. Features could also be projected onto the materialsuch as with a projector. Or, if the user will later paint over thematerial or for other reasons does not care about the appearance of thematerial, the user could simply mark up the material with a pencil ormarker.

In cases where the camera cannot track the material, or cannot do soaccurately enough, or the material is unsuitable for tracking (e.g. dueto an uneven surface), or any other reason that prevents the cameratracking the surface directly, the camera may instead track othermarkers off of the material. For example, the user could put wallsabove, below, or around the sides of the material being worked on thathave specific features or marks. The features or marks on thesurrounding surfaces enable the camera to determine its position on thematerial. Alternatively, different types of positioning technology ordevices could be used to locate the tool 699 or stage 690, possibly inconjunction with a camera 682 that is used mainly for recording thevisual appearance of the material without needing to perform thetracking function. Such could be the use of ultrasonic, IR rangefinding, lasers and the like.

As previously discussed in conjunction with FIGS. 1-9, the presentinvention described a handheld computer controlled router system usingan eccentric cam movement of a stage to control the router. However,eccentric cam movement is not the only design or method that can beemployed to move a tool or stage. As seen in FIG. 13, a linear baseddesign is depicted. The system 700 includes a router 701 which ismounted to a tool arm 702. The tool arm 702 is built on top of thelinear stage base 706. The linear stage base 706 moves in a back andforth direction along the axis line formed by the lead screw 705 and theprecision nut 707. Linear movement is achieved by controlling thestepper motor 710 which turns the lead screw 705 which moves theprecision nut 707 forcing the linear stage base 706 to move. The steppermotor and end of the linear system are mounted on the base 709. Handles708 are attached to the base 709 for users to move the system 700 on thematerial.

The linear system 700 would still use the camera 704 (connected to toolarm 702 using bracket 703) or sensor technology previously described tomap the surface of the material and determine the coordinates orlocation of the device 700 on the material. The user would scan thematerial with the camera 704 to make a map as described above. Next theuser would create, download, or otherwise obtain a design and registerit onto the map of the material. Finally, the user would return to thematerial with the tool, and follow the cut lines of the plan as closelyas possible. Typically, the user would grip the device 700 by thehandles 708 and move the device forward while trying to keep the router701 on the intended cut path or line. While doing so, when the userwould inadvertently drift off of the exact cut line or path, the systemwould detect the error. Since the system 700 knows both its location andthe plan it would power the stepper motor 710 to rotate the lead screw705 to move the router 701 by moving the linear stage base 706 to such apoint where the cutting bit 712 intersects the plan line exactly. Inthis way, the present invention can be used to make complex, curved,and/or precise cuts that could not otherwise be made by hand.

Both the eccentric and linear embodiments could employ a monitor ordisplay to communicate or display the location of the tool relative tothe intended path. The system could also use other methods such asshining a laser point or line where the user should go or somecombination thereof.

In certain instances, the tool may need to cut design, such as on atable top or sign, where the cut does not go all the way through and ittakes more than one pass to remove all the material required for thedesign. In such instances, the CPU sends signals to the motors to movethe router back and forth within the target range until all material hasbeen removed in accordance with the design. The system can also beconfigured to provide a notice to the user to wait until all suchmaterial within the target range has been removed. The system can alsonotify the user when it has completed its design in a certain regionthus notifying the user it is time to move forward to a new target area.

In addition, the router could be configured to follow a line drawn ontothe material itself. In this embodiment, the camera would be placed atthe front of the operating tool and would see the drawn line. The systemwould still use location mapping to stay accurate to the drawn line.

An alternative embodiment using various aspects of the present inventionwould be for use of the material mapping and tool location for use inprinting. Again, the user would build a map and upload a design andwould be able to print the design section by section on a large canvas.The system would know which color or colors to emit based on the designand location of the printing tool. After the user mapped the materialand uploaded the design the user would simply pass the device over thematerial to print the image.

The printer embodiment could be manually guided or automaticallypositioned with wheels (or treads, or other) like a robot. As seen inFIG. 14, a printer embodiment 800 is provided. As with the tool basedembodiments, the system 800 includes a camera 801 which is used to builda map of the surface and track the position of the device 800 on thesurface. The printer head 805 can slide along a linear stage 806 poweredby a stepper motor 807 which rotates a lead screw 803 which moves aprecision nut 804.

In one instance, the user builds up a map of the surface and registersan image that is to be printed to that surface. The user then positionsthe device 800 at one side of the intended printed area. The camera 801takes an image and determines its position on the surface. The printerhead 805 is then moved from one end of the linear stage 806 to the otherto lay down a strip of ink. The device 800 is then moved forward thewidth of one strip of ink (or slightly less to prevent gaps) by steppermotors 802 attached to wheels 809. The printer embodiment 800 also haswheels 811 which are merely to roll when the motor driven wheels 809 aredriven. Once the printer 800 has determined its in the correct place forthe next strip, the printer prints the strip of ink and repeats untilthe edge of the image has been reached. In this way, the printer 800 canlay down a band of ink as wide as a strip's length and arbitrarily long.At this point, the printer can either move itself to the next positionto start laying down another band of ink, or the user can do thismanually.

Various embodiments of the printer system 800 can work either in realtime (i.e., printing as it is moving) or by taking steps (printing onlywhen at a stop). Different embodiments can be made to suit differenttasks: e.g., a high-speed, real-time version might be built to printbillboards, which have low accuracy requirements, while a more precise,slower, step-taking device might be built to do accurate large-formatprinting, e.g. of posters. Either approach can also be made to work on awall, which would make it possible to print murals, advertisements, orother images directly onto a wall, rather than having to print the imageon wall paper and then stick it up. In addition, this tool could easilybe made to work with curved surfaces, which are typically extremelydifficult to cover with images.

The printer embodiment 800 could be adapted for use with any type ofpaint including inkjet, liquid or spray paints, markers, laser printingtechnology, latex based paints, and oil based paints.

The mapping phase could be also be bypassed if it was clear the materialsize was greater than the design. The user would simply determine astarting point that corresponds with a region on the design (i.e. thetop right corner) and the system 800 would start painting the image.Such would be useful when painting many copies of a single image in manylocations.

The embodiments discussed herein so far have focused on rigs whichaccommodate a tool being attached to a stage and the stage is moved orcontrolled by one or more motors. The linear design depicted a routermoved by a motor where the router is connected to a linear stage. Insuch instances, the router is attached or mounted as a separate unit.However, the system could easily be designed as one unit where thestage, motors moving the stage, controllers, and all within the samehousing and within the same power system as the housing and power of thetool. By way of example, the router housing would be enlarged to fit thestage and motors and might include a display integrated into thehousing. Through such an embodiment, the form factor might be improvedto look like a one piece tool.

The embodiments presented here are not meant to be exhaustive. Otherembodiments using the concepts introduced in the present invention arepossible. In addition, the components in these embodiments may beimplemented in a variety of different ways. For example, a linear stage,or a hinge joint, or an electromagnetic slide, or another positioningmechanism may be used to adjust a tool or the stage the tool is on inreaction to its detected position and its intended position.

By way of example, the present invention could also be used with drills,nail guns, and other tools that operate at a fixed position. In suchembodiments, the tool and software could be modified such that the planconsists of one or more target points instead of a full design. Thedevice could be moved by the user such that a target position is withinthe adjustment range. The software could then move the tool to thecorrect target position. The user could then use the tool to drill ahole, drive in a nail, or whatever the desired function is.

Alternatively, these tools can also be used without automaticadjustment. The stage, pivot, motors, and eccentrics could be removed.The tool could be attached to the lower stage housing. The softwarecould be modified such that the plan consists of one or more targetpoints. The user could move the device such that the tool is directlyover the target position. The user could use the location feedbackprovided on the display to perform accurate positioning.

In an alternative embodiment, the present invention could also be usedto position a jigsaw. A jigsaw blade can be rotated and moved in thedirection of the blade, but not moved perpendicular to the blade or itwill snap. The present invention could be modified to include a rotatingstage which would be placed on top of the positioning stage. The jigsawwould be attached to this rotating stage. The software would be modifiedto make the jigsaw follow the plan and rotate to the correctorientation, and made to ensure that the jigsaw was never movedperpendicular to the blade. A saber saw could also take the place of thejigsaw to achieve the same effect. The cutting implement would besteered by rotating the rotating stage, and the cutting implement couldbe moved along the direction of cutting by moving the positioning stage.

Another possibility would be to only support rotation and not supporttranslation. This could be done by automating the orientation of theblade in a scrolling jigsaw (which is a jigsaw with a blade that can berotated independently of the body). In this embodiment, the softwarewould only steer the blade to aim it at the correct course; the userwould be responsible for controlling its position.

The present invention could also be used to position a scroll saw. Inthis embodiment, the camera would be on the scroll saw, and the userwould move the material. The upper and lower arms of the scroll sawcould be mechanized such that they could be independently moved bycomputer control. The user would then move the material such that theplan lay within the adjustment range of the scroll saw, and the softwarewould adjust the scroll saw to follow the plan. The upper and lower armscould be moved to the same position, or moved independently to make cutsthat are not perpendicular to the material.

The invention could also be used in an alternative embodiment where theposition correcting device is mounted to a mobile platform. In thisembodiment, the device could be placed on material and left to driveitself around. The invention could also be used in an alternativeembodiment in which two mobile platforms stretch a cutting blade or wirebetween them. In this embodiment, each platform could be controlledindependently, allowing the cutting line to be moved arbitrarily in 3D,for example to cut foam.

The invention could also be used as an attachment to vehicles or workingequipment such as a dozer in which the position-correcting mechanism ismounted on the vehicle. In this embodiment, the vehicle could be drivenover a sheet of material such as steel plate lying on the ground, and acutting tool such as a plasma cutter could be used to cut the material.The invention could also be used as a plotting device or paintingdevice, for example to lay out lines on a football field or mark aconstruction site.

Although SLAM was described as the exemplary mode for mapping anddetermining the location of the tool 699, it is to be understood thatvarious other location processing anddetermining technologies arepossible, such as, but not limited to, integrating wireless positionsensing technologies, such as RF, near field communication, Bluetooth,laser tracking and sensing, and other suitable methods for determiningthe position of the tool 699 on top of the work piece.

Although various steps are described herein according to the exemplarymethod of this invention, it is to be understood that some of the stepsdescribed herein may be omitted, and others may be added withoutdeparting from the scope of this invention.

It will be recognized by those skilled in the art that changes ormodifications may be made to the herein described embodiment withoutdeparting from the broad inventive concepts of the invention. It isunderstood therefore that the invention is not limited to the particularembodiment which is described, but is intended to cover allmodifications and changes within the scope and spirit of the invention.

Appendix

0. Abstract

Many kinds of digital fabrication are accomplished by precisely moving atool along a digitally-specified path. This precise motion is typicallyaccomplished fully automatically using a computer-controlled multi-axisstage. In this approach, one can only create objects smaller than thepositioning stage, and large stages can be quite expensive. We propose anew approach to precise positioning of a tool that combines manual andautomatic positioning: in this approach, the user coarsely positions aframe containing the tool in an approximation of the desired path, whilethe device tracks the frame's location and adjusts the position of thetool within the frame to correct the user's positioning error in realtime. Because the automatic positioning need only cover the range of thehuman's positioning error, this frame can be small and inexpensive, andbecause the human has unlimited range, such a frame can be used toprecisely position tools over an unlimited range.

1. Introduction

Personal digital fabrication endeavors to bridge the gap betweencomputer graphics and the real world, turning virtual models intophysical objects. Novel software modeling allows users to create uniqueobjects of their own design, e.g. [Mori and Igarashi 2007; Kilian et al.2008; Lau et al. 2011; Saul et al. 2011], which can then be fabricatedusing 2D devices such as laser or water jet cutters, or 3D devices suchas 3D printers and computer numerical control (CNC) mills. While rapidprototyping machines are dropping in price, affordable tools have severesize limitations because of the expense of a precise and long-rangepositioning system. As an illustration, a 2′ ×1.5′ ShopBot CNC millcosts approximately $6,000, while a 5′ ×8′ ShopBot mill costs over$20,000[ShopBot Tools].

We aim to reduce the cost of digital fabrication for the domain of 2Dshapes while simultaneously removing constraints on range. Our centralidea is to use a hybrid approach to positioning where a human providesrange while a tool with a cheap short-range position-adjustment enablesprecision. Given an input 2D digital plan such as the outline of ashape, the user manually moves a frame containing a tool in a roughapproximation of the desired plan. The frame tracks its location and canadjust the position of the tool within the frame over a small range tocorrect the human's coarse positioning, keeping the tool exactly on theplan (FIG. 1). A variety of tools can be positioned in this manner,including but not limited to a router (which spins a sharp bit to cutthrough wood, plastic, or sheet metal in an omnidirectional manner) tocut shapes, a vinyl cutter to make signs, and a pen to plot designs.

In this approach, the core challenges are localization (determining thecurrent position of the tool) and actuation (correcting the tool'sposition). For localization, we use computer vision and special markersplaced on the material. For actuation, we present a new two-axis linkagethat can adjust the position of the tool within the frame. We alsodescribe an interface for guiding the user using a screen on the frame,which illustrates the tool's current position relative to the plan. Weshow an example of a device (FIG. 16) built using our approach which canbe fitted with a router or a vinyl cutter, and show results that can beachieved with these tools when they are positioned with ourcomputer-augmented approach.

2. Related Work

Personal digital fabrication has been an active area of research withinthe computer graphics community, in particular on interfaces thatintegrate fabrication considerations with design. Several papers havepresented systems to allow fabrication-conscious design of a variety ofmaterial and object types, such as plush toys [Mori and Igarashi 2007],chairs [Saul et al. 2011], furniture [Lau et al. 2011], shapes made outof a single folded piece of material [Kilian et al. 2008], and paneledbuildings [Eigensatz et al. 2010]. Other papers explore how to generatedesigns with desired physical properties, such as deformationcharacteristics [Bickel et al. 2010], appearance under directedillumination [Alexa and Matusik 2010], and subsurface scattering [Donget al. 2010; Hašan et al. 2010].

When it comes to fabricating objects from these designs, the most widelyused devices are 3D printers, laser cutters, and CNC milling machines.Recently, a variety of efforts growing out of the DIY community havesought to reduce the cost of 3D printers [MakerBot Industries: Drumm2011; Sells et al.] and CNC mills [Hokanson and Reilly; Kelly] forpersonal use. These projects typically provide relatively cheap kits forentry-level devices. However, as with professional models, positioningis done with a multi-axis stage, and the tradeoff between cost and rangeremains.

Our computer-augmented positioning approach removes the limitation onrange of the above technologies. To do so, it relies on accuratelydetecting the position of the frame in real time. A variety ofapproaches to real-time localization have been employed over the years,from global-scale GPS [Getting 1993] to local-scale systems based onradio and ultrasonic signals [Priyantha et al. 2000]; an overview isgiven in a survey by Welch and Foxlin [2002].

Our approach to localization is computer vision-based. Computer visionhas been widely used for position tracking in the context of motioncapture (see Moeslund et al. [2006] for a survey). These setupstypically use stationary cameras tracking a moving object, thoughrecently Shiratori et al. [2011] proposed a system in which cameras areplaced on the human and track the environment. In our approach, thecamera is on the tool and tracks the material over which it moves, firststitching frames together to make a map of the material (see Zitova andFlusser [2003] and Szeliski [2006] for surveys of image registration andstitching techniques) and then using that map to perform localization.This approach has been used before, with some differences, in a recentnew peripheral, LG's LSM-100 scanner mouse [LG; Zahnert et al. 2010],which is a mouse that can scan a document it is passed over. Ourimplementation differs from theirs in that we use only a camera (nooptical mice), capture a wider area of the material in each frame, anduse high-contrast markers placed on the material to allow capture ofuntextured materials.

3. Localization

To keep the tool on the plan as closely as possible, the tool mustdetect its current position accurately, robustly, and with low latency.

To this end, we considered a variety of localization systems, eventuallysettling on a simple computer vision-based approach, in which a cameraon the frame of the device tracks high-contrast markers placed (in anarbitrary pattern) on the material. In this approach, a map of thematerial (FIG. 17) is first built by passing the device back and forthover the material to be cut; then, images from the camera are comparedto this map to determine the device's location. This was chosen for avariety of reasons: it can achieve very high accuracy; it always remainscalibrated to the material (as the markers are on the material itself,as opposed to, e.g., external beacons, which can become uncalibrated);it does not require excessive setup; the hardware required is relativelyinexpensive; and it can be implemented using standard computer visiontechniques. Building the map is fast and easy.

3.1. High-contrast markers

We leverage specially-printed tape marked with high-contrast patterns tomake it possible to track materials that have no visual features oftheir own (such as sheet metal or plastic) and to increase robustnessunder varying lighting conditions. This tape is applied beforemap-making, in an any pattern so long as some tape is visible from everyposition that the device will move to, and can be removed when the jobis complete. The tape consists of many QR-code-like markers [Denso-WaveIncorporated] in a row, each consisting of an easily-detectablebox-within-box pattern we call an “anchor” and a 2D barcode thatassociates a unique number with the anchor (see FIG. 18). As long asfour of these markers are visible at any time (which is typically thecase even if only a single piece of tape is visible), the device is ableto locate itself. The redundancy of the markers means that it does notmatter if some are occluded (e.g. by sawdust) or obliterated by the toolitself. Note that these markers function just as features—theirpositions are not assumed before mapping, and therefore they need not belaid out in any specific pattern.

3.2. Image processing

The core operations used during locating and building a map aredetecting markers in an image and registering one set of markers ontoanother.

Detecting markers To detect markers, the frame is first binarized usingthe Otsu method [1979]. Anchors are extracted using a standard approachto QR code reading: first, horizontal scanlines are searched for runs ofalternating pixel colors matching the ratio of 1:1:3:1:1, as will alwaysbe found at an anchor. Locations that match this pattern are thenchecked for the same pattern vertically. Locations that matchhorizontally and vertically are then flood filled to confirm thebox-within-box pattern. Once anchors have been extracted, each anchor isexperimentally matched with the nearest anchor, and the area in betweenis parsed as a barcode. Barcode orientation is disambiguated by havingthe first bit of the 2D barcode always be 1 and the last bit always be0. If the parsed barcode does not match this pattern, the next-nearestanchor is tried. If neither matches, the anchor is discarded. If thepattern is matched, the barcode's value is associated with the firstanchor and that anchor's position is added to the list of detectedmarkers.

Matching sets of markers One set of markers is matched to another usinga RANSAC algorithm. The potential inliers are the pairs of markers fromthe two sets that share the same ID. The model that is fit is theleast-squares Euclidean transformation (rotation and translation).

3.3. Building a map

Mapping is done by stitching together video frames into a 2D mosaic(FIG. 17) as the user passes the device back and forth over thematerial. To reduce computation loads, we retain only frames thatoverlap with the previously retained frame by less than 75%. We use asimple method to stitch images together: as frames are acquired, theyare matched to all previous frames and assigned an initial position andorientation by averaging their offsets from successfully matched frames;once all images have been acquired, final positions and orientations arecomputed by iteratively applying all constraints between successfullymatched frames until the system converges to a stable configuration.

Once the map is complete, a super-list of markers for the entire map isgenerated from the markers in input images by averaging the map-spacepositions of markers that share the same ID. This global list of knownpositions for each marker ID is what is used to localize new images whenthe device is in use.

When preparing to cut a shape, the user will register a shape onto this2D map. Having the map of the material makes it trivial to visuallyalign the plan with features of the material. This would otherwiserequire careful calibration relative to a stage's origin point, as isusually the case with a CNC machine.

3.4. Localization using the map

Once the map has been created as above, registering a new image to themap is straightforward. Markers are detected as above and matched to theglobal list of markers from the map using the same RANSAC algorithm asabove. An image from the camera can be registered to a map in ˜4milliseconds total on a standard laptop. Although localization exhibitsstrong time-coherence, thanks to the low cost of processing we canafford to solve the system from scratch at every frame.

4. Actuation

Once the location of the frame is known, the tool must be repositionedwithin the frame to keep it on the plan. This task can be broken downinto the control challenge of determining where within the frame to move(as there are usually many possible positions that lie on the plan) andthe mechanical engineering challenge of building an accurate,responsive, and low-cost position-adjusting actuation system.

The range of our positioning linkage was determined by first attemptingto move the frame along a 2D plan as closely as possible by hand. Wefound that when provided with accurate location information relative tothe plan a user can keep the tool within ⅛″ of the plan, even whencutting wood. (Having accurate location information allows for greaterprecision than normal freehand positioning.) To allow a safety marginand increase ease of use, we doubled this value to arrive at the goal ofbeing able to correct errors up to ¼″ (i.e. having a range circle with a½″ diameter).

4.1. Actuation System

The actuation system need only support a small range of motion, as itneed only correct the coarse positioning done by the human. This affordsthe possibility of using a very different design for the positioningsystem than the multi-axis stage employed by traditional rapidprototyping machines.

Our major mechanical departure from traditional rapid prototypingmachines is that we use eccentrics, rather than linear stages, toconvert the rotational motion of the motors into linear motion.Eccentrics are circular disks rotating around an off-center shaft. Asthey are rotated, they produce linear motion in a collar wrapped aroundthe disk. Eccentrics are able to maintain the same low-backlash accuracyof a precision linear stage while being much cheaper. For this, theysacrifice range. However, a linear displacement range of ½″ is wellwithin the capabilities of an eccentric.

Our design (FIG. 19) consists of two eccentrics mounted to the frame andconnected to a stage that can slide on its base. The eccentrics arerotated by stepper motors, and by rotating them the stage can be movedwithin the frame. To properly constrain the stage, one eccentric isconnected directly to the stage by a ball bearing coupling, while theother is connected both by a coupling and a hinge.

This linkage design results in a nonlinear relationship betweeneccentric orientation and stage position: near the center of its range,moderate rotation of an eccentric produces moderate motion of the stage,while near the edge of its range much larger rotations are necessary tomove the stage a fixed amount. We limit stage displacement to ˜95% ofthe maximum range to cut out the positions with extreme nonlinearity.This linkage design also permits backdriving, in that forces acting onthe tool can cause the cams to rotate away from their target positions;however, we found that the stepper motors we use (62 oz-in holdingtorque) are sufficiently powerful to preclude backdriving, even in thepresence of significant material forces.

4.2. Following a plan

As the user moves the frame, the device must ensure that the tool stayson the plan. To do this, the path that is to be followed must be firstcomputed (which may not be the same as the plan); then, every frame,given the frame's position, the tool's position within the frame, andthe plan, the device must determine where to move the tool within theframe.

For the applications we focus on—routing and vinyl cutting—the usergenerally wishes to cut a shape out of a piece of material. This meansthat there will be some areas of the material that are outside thetarget shape, and which may be cut freely (which we call “exteriormaterial”), while other areas lie inside the target shape and must notbe cut (“interior material”). To allow for this distinction, we define aplan as consisting of polygons, with defined insides and outsides,rather than simply as paths.

In applications such as vinyl cutting, the tool should follow the borderof the interior material as closely as possible. When routing, however,the size of the cutting bit must be taken into account, and the toolshould move along a path offset from the interior material by the radiusof the bit, to leave the actual cut shape as close as possible to thespecified plan. We provide an option to set the diameter of the cuttingbit and offset the plan polygons accordingly.

We propose two different strategies for moving the tool to keep it onthe plan, and will show how each of these is appropriate for a differentclass of applications.

4.2.1. Constant-speed motion

In the simpler strategy, the tool is moved through the material at asclose to a constant rate as possible. This strategy is useful forapplications such as routing, in which the material may offer resistanceif the tool is moved too quickly and may burn if the tool is moved tooslowly.

In this approach, the user decides only what polygon to follow and whento start motion. Thereafter, the software drives the tool around thatpolygon at a constant rate. While the tool is moving, the user moves theframe to keep the tool near the center of its range, ensuring that thetool can continue its constant-speed motion without reaching the end ofits range. If the tool does reach the end of its range, it must stopuntil the user catches up.

4.2.2. Freeform motion

In the second strategy, the user moves the frame around the plan freely,and the device tries to keep the tool at the point on the plan that most“makes sense” given the user's positioning of the frame. This approachis suitable to applications such as plotting or vinyl cutting in whichthere is negligible material resistance and no need to move at aconstant rate.

The point that the tool is moved to is, generally speaking, the closestpoint on the border of a plan polygon to the center of the tool's range.However, several considerations make determining the path to get to thispoint complicated. First, the tool should never move through interiormaterial, even if the shortest path from its current position to thetarget position goes through it. Second, the tool should seek to followthe border of the interior material even when a shorter direct route ispossible through exterior material, to avoid skipping over features ofthe plan.

We aim to account for these considerations while also maximizing thepredictability of the tool's motion. We propose a simple strategy inwhich four possible paths are computed each frame, ranking from mostdesirable to least desirable, and the most desirable path that isfeasible is followed. All seek to move the tool to the target position,which is the closest point on the border of a plan polygon to the centerof the tool's range, or to the center of the tool's range itself if thetarget position is not reachable. These paths, illustrated in FIG. 20,are:

-   I. The path that goes from the tool's position to the nearest point    on the border of a polygon, and then walks along the border of that    polygon to the target position in whichever direction is shorter.    This path is infeasible if it leaves the tool's range or if the    target position is on the border of a polygon other than the polygon    closest to the tool's position.-   II. The path that goes from the tool's position to the nearest    exterior material (if it is in the interior material) and then in a    straight line to the target position. This path is infeasible if the    nearest exterior material is outside the range or the straight line    segment passes through interior material.-   III. The path that goes from the tool's position to the nearest    exterior material (if it is in the interior material) and then in a    straight line to the center of the tool's range, stopping whenever    interior material is encountered. This path is infeasible if the    nearest exterior material lies outside the range of the tool.-   IV. Don't move. This path is always feasible.    5. Using the tool

As described above, use of the device proceeds as follows: the userplaces marker tape on the material; the user scans the material; theuser registers a plan onto the scanned map of the material; the useruses the device to follow the plan. When following a plan, the userroughly follows the shape of the plan, and the positioning linkage movesthe router to keep it exactly on the plan. In principle, the tool canfollow any 2D path. In the application of routing, this means that itcan cut out any 2D shape in a single pass, or more complex 2.5D(heightmap) shapes using multiple passes at different depths.

5.1. User interface

When following a plan, the user is shown the position of the toolrelative to the plan on the screen (see FIG. 21). In theory, the user'stask is to keep the center of the router's motion range as close to theplan as possible. In practice, the user may deviate by as much as theradius of the router's adjustment range.

6. Results

We built a device (FIG. 16) that implements the position-correctingsystem described above. The device that we built can be mounted a routeror vinyl cutter, and can follow any 2D plan. FIGS. 16 and 22 show shapescut out of wood, plastic, paperboard, and sheet metal. FIG. 23demonstrates the ability to follow plans of unlimited range with afull-size vinyl cutout of a human silhouette. FIG. 24 shows an exampleof a cut shape with high-resolution details.

We empirically tested the fidelity of shape reproduction by plotting acomplex pattern, scanning the result, and measuring deviation from thedigital plan (FIG. 25). The shape was plotted 6″ wide. We fitted a curveto the scanned plot, aligned the plan to that curve, and measureddeviation from evenly-sampled points along the drawn shape curve to thenearest point on the plan. The average error was 0.009″, with a maximumerror of 0.023″. The error was small enough that the aligned designalways fell within the width of the pen stroke.

7. Conclusion and future work

We have proposed a computer-augmented positioning system that avoids thecost-versus-range tension that currently affects rapid prototypingdevices, and demonstrated a tool using this approach that combines theunlimited range of a human operator with the accuracy of a computerizedpositioning system. This device incorporates a computer vision-basedsystem for localization and a specially designed low-cost linkage thatcan be used to adjust the position of a tool within the device's frame.We have shown how this device can be used with a router and a vinylcutter to accurately fabricate objects from digital plans.

In future work, we would like to explore applying this type ofcomputer-augmented positioning to a variety of other tools and deviceform factors.

REFERENCES

ALEXA, M., AND MATUSIK, W. 2010. Reliefs as images. ACM Transactions onGraphics 29, 4 (Jul.), 1.

BICKEL, B., BACHER, M., OTADUY, M. A., LEE, H. R., PFISTER, H., GROSS,M., AND MATUSIK, W. 2010. Design and fabrication of materials withdesired deformation behavior. ACM Transactions on Graphics 29, 4 (Jul.),1.

DENSO-WAVE INCORPORATED. QR Code Specification.http://www.densowave.com/qrcode/index-e.html.

DONG, Y., WANG, J., PELLACINI, F., TONG, X., AND GUO, B. 2010.Fabricating spatially-varying subsurface scattering. ACM Transactions onGraphics 29, 4 (Jul.), 1.

DRUMM, B., 2011. Printrbot. http://www.printrbot.com/.

EIGENSATZ, M., KILIAN, M., SCHIFTNER, A., MITRA, N. J., POTTMANN, H.,AND PAULY, M. 2010. Paneling architectural freeform surfaces. In ACMSIGGRAPH 2010 papers on—SIG-GRAPH ‘10, ACM Press, New York, New York,USA, vol. 29, 1.

FERRAIOLO, J., FUJISAWA, J., AND JACKSON, D., 2003. Scalable VectorGraphics (SVG) 1.1 Specification. World Wide Web Consortium,Recommendation REC-SVG11-20030114.

GETTING, I. 1993. Perspective/navigation-The Global Positioning System.IEEE Spectrum 30, 12, 36-38, 43-47.

GROSS, M. 2009. Now More than Ever: Computational Thinking and a Scienceof Design. 16, 2, 50-54.

HAšAN, M., FUCHS, M., MATUSIK, W., PFISTER, H., AND RUSINKIEWICZ, S.2010. Physical reproduction of materials with specified subsurfacescattering. In ACM SIGGRAPH 2010 papers on—SIGGRAPH ‘10, ACM Press, NewYork, New York, USA, vol. 29, 1.

HOKANSON, T., AND REILLY, C. DIYLILCNC. http://diylilcnc.org/.

KELLY, S. Bluumax CNC. http://www.bluumaxcnc.com/Gantry-Router.html.

KILIAN, M., FLORY, S., CHEN, Z., MITRA, N. J., SHEFFER, A., ANDPOTTMANN, H. 2008. Curved folding. ACM Transactions on Graphics 27, 3(Aug.), 1.

LANDAY, J. A. 2009. Technical perspectiveDesign tools for the rest ofus. Communications of the ACM 52, 12 (Dec.), 80.

LAU, M., OHGAWARA, A., MITANI, J., AND IGARASHI, T. 2011. Converting 3Dfurniture models to fabricatable parts and connectors. In ACM SIGGRAPH2011 papers on—SIGGRAPH ‘11, ACM Press, New York, N.Y., USA, vol. 30, 1.

LG. LSM-100.http://www.1g.com/ae/it-products/external-hard-disk/LG-LSM-100.jsp.

MAKERBOT INDUSTRIES. MakerBot. http://www.makerbot.com/.

MOESLUND, T. B., HILTON, A., AND KRÜGER, V. 2006. A survey of advancesin vision-based human motion capture and analysis. Computer Vision andImage Understanding 104, 2-3 (Nov.), 90-126.

MORI, Y., AND IGARASHI, T. 2007. Plushie. In ACM SIGGRAPH 2007 paperson—SIGGRAPH ‘07, ACM Press, New York, N.Y., USA, vol. 26, 45.

OTSU, N. 1979. A Threshold Selection Method from Gray-Level Histograms.IEEE Transactions on Systems, Man, and Cybernetics 9, 1, 62-66.

PRIYANTHA, N. B., CHAKRABORTY, A., AND BALAKRISHNAN, H. 2000. TheCricket location-support system. In Proceedings of the 6th annualinternational conference on Mobile computing and networking—MobiCom ‘00,ACM Press, New York, N.Y. , USA, 32-43.

SAUL, G., LAU, M., MITANI, J., AND IGARASHI, T. 2011. SketchChair. InProceedings of the fifth international conference on Tangible, embedded,and embodied interaction—TEI ‘11, ACM Press, New York, N.Y. , USA, 73.

SELLS, E., SMITH, Z., BAILARD, S., BOWYER, A., AND OLLIVER, V. RepRap:The Replicating Rapid Prototyper: Maximizing Customizability by Breedingthe Means of Production.

SHIRATORI, T., PARK, H. S., SIGAL, L., SHEIKH, Y., AND HOD-GINS, J. K.2011. Motion capture from body-mounted cameras. ACM Transactions onGraphics 30, 4 (Jul.), 1.

SHOPBOT TOOLS. ShopBot. http://www.shopbottools.com/.

SMITH, A., BALAKRISHNAN, H., GORACZKO, M., AND PRIYANTHA, N. 2004.Tracking moving devices with the cricket location system. In Proceedingsof the 2nd international conference on Mobile systems, applications, andservices - MobiSYS ‘04, ACM Press, New York, N.Y. , USA, 190.

SZELISKI, R. 2006. Image Alignment and Stitching: A Tutorial.Foundations and Trends in Computer Graphics and Vision 2, 1 (Jan.),1-104.

WELCH, G., AND FOXLIN, E. 2002. Motion tracking: no silver bullet, but arespectable arsenal. IEEE Computer Graphics and Applications 22, 6(Nov.), 24-38.

WEYRICH, T., DENG, J., BARNES, C., RUSINKIEWICZ, S., AND FINKELSTEIN, A.2007. Digital bas-relief from 3D scenes. In ACM SIGGRAPH 2007 paperson—SIGGRAPH ‘07, ACM Press, New York, N.Y. , USA, vol. 26, 32.

XIN, S., LAI, C.-F., FU, C.-W., WONG, T.-T., HE, Y., AND COHEN-OR, D.2011. Making burr puzzles from 3D models. ACM Transactions on Graphics30, 4 (Jul.), 1.

ZAHNERT, M. G., FONSEKA, E., AND ILIC, A., 2010. Handheld Scanner withHigh Image Quality.

ZITOVA, B., AND FLUSSER, J. 2003. Image registration methods: a survey.Image and Vision Computing 21,11 (Oct.), 977-1000.

What is claimed is:
 1. A computer implemented method of positioning aworking member of a rig, comprising: capturing, using a camera, a firstset of captured images, wherein the first set of captured imagesincludes one or more images of one or more markers on a marked surface;determining a first set of marker data based at least in part upon thefirst set of captured images, wherein the first set of marker dataincludes marker identification information and marker positioninformation for each marker in a first set of markers, and each of themarkers in the first set of markers appears in at least one of theimages in the first set of captured images; registering a design tomarker identification information and marker position information in thefirst set of marker data for at least one marker in the first set ofmarkers; determining an intended path for the working member based atleast in part upon the design; capturing, using the camera, a firstimage of at least one of the one or more markers on the marked surfaceafter registering the design; determining a second set of marker databased at least in part upon the first image, wherein the second set ofmarker data includes marker identification information and markerposition information for each marker in a second set of markers, each ofthe markers in the second set of markers appears in the first image, andat least one marker in the second set of markers is in the first set ofmarkers; providing motor control information that controls one or moremotors to position the working member at a first target point on theintended path based at least in part upon a position of the camera,wherein the position of the camera is based at least in part upon thefirst set of marker data and the second set of marker data; capturing,using the camera, a second image of at least one of the one or moremarkers on the marked surface after capturing the first image, whereinthe rig is located at a first location when capturing the first image,the rig is located at a second location when capturing the second image,and the first location is different from the second location;determining a third set of marker data based at least in part upon thesecond image, wherein the third set of marker data includes markeridentification information and marker position information for eachmarker in a third set of markers, each of the markers in the third setof markers appears in the second image, and at least one marker in thethird set of markers is in the first set of markers; and providingadditional motor control information that controls the one or moremotors to position the working member at a second target point on theintended path based at least in part upon a second position of thecamera, wherein the first target point and the second target point aredifferent points on the intended path, and the second position of thecamera is based at least in part upon the first set of marker data andthe third set of marker data.
 2. The method of claim 1, comprising:providing first information for displaying, via a display, arepresentation of at least a portion of the intended path.
 3. The methodof claim 2, comprising: providing second information for displaying, viathe display, a representation of a target range within which the workingmember may be positioned by the one or more motors.
 4. The method ofclaim 3, comprising: providing third information for displaying, via thedisplay, a representation of a position of the working member.
 5. Themethod of claim 1, comprising: stitching a second set of captured imagestogether to generate a photo mosaic, wherein each image in the secondset of captured images is in the first set of captured images; providingfirst information for displaying, via a display, a representation of atleast a portion of the photo mosaic; and providing second informationfor displaying, via the display, a representation of a position of theworking member.
 6. The method of claim 1, comprising: obtaining thedesign from a remote computer system.
 7. The method of claim 1, whereinthe motor control information and the additional motion controlinformation cause the working member to engage a material along theintended path to remove some of the material.
 8. The method of claim 1,wherein the working member is a cutting bit and the motor controlinformation causes the one or more motors to move the cutting bit to thefirst target point.
 9. The method of claim 8, wherein the intended pathis based at least in part upon a width of the cutting bit.
 10. Themethod of claim 1, wherein the working member is a saw blade and themotor control information causes the one or more motors to orient thesaw blade at the first target point.
 11. The method of claim 1, whereinthe one or more markers comprise at least one of: a sticker, a projectedfeature, an ink marking, a pencil marking, or a marker marking.
 12. Themethod of claim 1, wherein the one or more markers comprise a tape witha pattern, and the pattern relates to marker identification informationfor at least one of the one or more markers in the first set of markers.13. The method of claim 1, wherein the marked surface is a surface of amaterial, and the working member is positioned on the marked surface.14. A system to position a working member of a rig, the rig comprising astage for receiving and holding the working member, and one or moremotors for moving the stage, the system comprising: a processor incombination with one or more software applications; a camera,communicatively coupled to the processor; and a memory, communicativelycoupled to the processor, wherein the one or more software applications,when executed, cause the system to: capture, using the camera, a firstset of captured images, wherein the first set of captured imagesincludes one or more images of one or more markers on a marked surface;determine a first set of marker data based at least in part upon thefirst set of captured images, wherein the first set of marker dataincludes marker identification information and marker positioninformation for each marker in a first set of markers, and each of themarkers in the first set of markers appears in at least one of theimages in the first set of captured images; register a design to markeridentification information and marker position information in the firstset of marker data for at least one marker in the first set of markers;determine an intended path for the working member based at least in partupon the design; capture, using the camera, a first image of at leastone of the one or more markers on the marked surface after registeringthe design; determine a second set of marker data based at least in partupon the first image, wherein the second set of marker data includesmarker identification information and marker position information foreach marker in a second set of markers, each of the markers in thesecond set of markers appears in the first image, and at least onemarker in the second set of markers is in the first set of markers;provide motor control information that controls the one or more motorsto position the working member at a first target point on the intendedpath based at least in part upon a position of the camera, wherein theposition of the camera is based at least in part upon the first set ofmarker data and the second set of marker data; capture, using thecamera, a second image of at least one of the one or more markers on themarked surface after capturing the first image, wherein the rig islocated at a first location when capturing the first image, the rig islocated at a second location when capturing the second image, and thefirst location is different from the second location; determine a thirdset of marker data based at least in part upon the second image, whereinthe third set of marker data includes marker identification informationand marker position information for each marker in a third set ofmarkers, each of the markers in the third set of markers appears in thesecond image, and at least one marker in the third set of markers is inthe first set of markers; and provide additional motor controlinformation that controls the one or more motors to position the workingmember at a second target point on the intended path based at least inpart upon a second position of the camera, wherein the first targetpoint and the second target point are different points on the intendedpath, and the second position of the camera is based at least in partupon the first set of marker data and the third set of marker data. 15.The system of claim 14, further comprising: a display, communicativelycoupled to the processor, wherein the one or more software applications,when executed, cause the system to: provide first information fordisplaying, via the display, a representation of at least a portion ofthe intended path.
 16. The system of claim 15, wherein the one or moresoftware applications, when executed, cause the system to: providesecond information for displaying, via the display, a representation ofa target range within which the working member may be positioned by theone or more motors.
 17. The system of claim 16, wherein the one or moresoftware applications, when executed, cause the system to: provide thirdinformation for displaying, via the display, a representation of aposition of the working member.
 18. The system of claim 14, furthercomprising: a display, communicatively coupled to the processor, whereinthe one or more software applications, when executed, cause the systemto: stitch a second set of captured images together to generate a photomosaic, wherein each image in the second set of captured images is inthe first set of captured images; provide first information fordisplaying, via the display, a representation of at least a portion ofthe photo mosaic; and provide second information for displaying, via thedisplay, a representation of a position of the working member.
 19. Thesystem of claim 14, wherein the one or more software applications, whenexecuted, cause the system to: obtain the design from a remote computersystem.
 20. The system of claim 14, wherein the one or more markerscomprise a tape with a pattern, and the pattern relates to markeridentification information for at least one of the one or more markersin the first set of markers.
 21. The system of claim 14, wherein themotor control information and the additional motor control informationcause the working member to engage a material along the intended path toremove some of the material.
 22. Non-transitory computer readable mediastoring instructions for positioning a working member of a rig, whereinthe instructions, when executed by a computer system, cause the computersystem to: capture, using a camera, a first set of captured images,wherein the first set of captured images includes one or more images ofone or more markers on a marked surface; determine a first set of markerdata based at least in part upon the first set of captured images,wherein the first set of marker data includes marker identificationinformation and marker position information for each marker in a firstset of markers, and each of the markers in the first set of markersappears in at least one of the images in the first set of capturedimages; register a design to marker identification information andmarker position information in the first set of marker data for at leastone marker in the first set of markers; determine an intended path forthe working member based at least in part upon the design; capture,using the camera, a first image of at least one of the one or moremarkers on the marked surface after registering the design; determine asecond set of marker data based at least in part upon the first image,wherein the second set of marker data includes marker identificationinformation and marker position information for each marker in a secondset of markers, each of the markers in the second set of markers appearsin the first image, and at least one marker in the second set of markersis in the first set of markers; provide motor control information thatcontrols one or more motors to position the working member at a firsttarget point on the intended path based at least in part upon a positionof the camera, wherein the position of the camera is based at least inpart upon the first set of marker data and the second set of markerdata; capture, using the camera, a second image of at least one of theone or more markers on the marked surface after capturing the firstimage, wherein the rig is located at a first location when capturing thefirst image, the rig is located at a second location when capturing thesecond image, and the first location is different from the secondlocation; determine a third set of marker data based at least in partupon the second image, wherein the third set of marker data includesmarker identification information and marker position information foreach marker in a third set of markers, each of the markers in the thirdset of markers appears in the second image, and at least one marker inthe third set of markers is in the first set of markers; and provideadditional motor control information that controls the one or moremotors to position the working member at a second target point on theintended path based at least in part upon a second position of thecamera, wherein the first target point and the second target point aredifferent points on the intended path, and the second position of thecamera is based at least in part upon the first set of marker data andthe third set of marker data.
 23. The computer readable media of claim22, wherein the instructions, when executed by the computer system,cause the computer system to: provide first information for displaying,via a display, a representation of at least a portion of the intendedpath.
 24. The computer readable media of claim 23, wherein theinstructions, when executed by the computer system, cause the computersystem to: provide second information for displaying, via the display, arepresentation of a target range within which the working member may bepositioned by the one or more motors.
 25. The computer readable media ofclaim 24, wherein the instructions, when executed by the computersystem, cause the computer system to: provide third information fordisplaying, via the display, a representation of a position of theworking member.
 26. The computer readable media of claim 22, wherein theinstructions, when executed by the computer system, cause the computersystem to: stitch a second set of captured images together to generate aphoto mosaic, wherein each image in the second set of captured images isin the first set of captured images; provide first information fordisplaying, via a display, a representation of at least a portion of thephoto mosaic; and provide second information for displaying, via thedisplay, a representation of a position of the working member.
 27. Thecomputer readable media of claim 22, wherein the instructions, whenexecuted by the computer system, cause the computer system to: obtainthe design from a remote computer system.
 28. The computer readablemedia of claim 22, wherein the one or more markers comprise a tape witha pattern, and the pattern relates to marker identification informationfor at least one of the one or more markers in the first set of markers.29. The computer readable media of claim 22, wherein the motor controlinformation and the additional motor control information cause theworking member to engage a material along the intended path to removesome of the material.